package pl.edu.pk.psb.bc.assembler;

import java.util.HashSet;
import java.util.Set;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import pl.edu.pk.psb.bc.ds.RezerwacjaDs;
import pl.edu.pk.psb.bc.dto.RezerwacjaDto;

@Component
public class RezerwacjaAssembler {

	@Autowired
	SalaAssembler salaAssembler;
	
	@Autowired
	MiejsceAssembler miejsceAssembler;
	
	@Autowired
	WydarzenieAssembler wydarzenieAssembler;

	public RezerwacjaDs konwertuj(RezerwacjaDto dto) {
		RezerwacjaDs ds = new RezerwacjaDs();
		ds.setId(dto.getId());
		ds.setIdWydarzenia(dto.getIdWydarzenia());
		ds.setData(dto.getData());
		if(dto.getMiejsca().size()>0){
			ds.setMiejsca(miejsceAssembler.konwertujDoDs(dto.getMiejsca()));
		}else{
			ds.setIloscMiejsc(dto.getIloscMiejsc());
		}
		return ds;
	}

	public RezerwacjaDto konwertuj(RezerwacjaDs ds) {
		RezerwacjaDto dto = new RezerwacjaDto();
		dto.setId(ds.getId());
		dto.setIdWydarzenia(ds.getIdWydarzenia());
		dto.setData(ds.getData());
		if(ds.getMiejsca().size()>0){
			dto.setMiejsca(miejsceAssembler.konwertujDoDto(ds.getMiejsca()));
		}else{
			dto.setIloscMiejsc(ds.getIloscMiejsc());
		}
		return dto;
	}

	public Set<RezerwacjaDs> konwertujDoDs(Set<RezerwacjaDto> dto) {
		Set<RezerwacjaDs> ds = new HashSet<RezerwacjaDs>();
		for (RezerwacjaDto rezerwacja : dto) {
			ds.add(konwertuj(rezerwacja));
		}
		return ds;
	}

	public Set<RezerwacjaDto> konwertujDoDto(Set<RezerwacjaDs> ds) {
		Set<RezerwacjaDto> dto = new HashSet<RezerwacjaDto>();
		for (RezerwacjaDs rezerwacja : ds) {
			dto.add(konwertuj(rezerwacja));
		}
		return dto;
	}
}
